package godash

import (
	"soluty.cc/go/godash/internal"
	"soluty.cc/go/godash/internal/array"
)

type T = internal.T
type V = internal.V

// 所有slice的方法, 传指针的是会修改底层数组的, 传值的不会
var Chunk = array.Chunk
var Compact = array.Compact
var Concat = array.Concat
var Difference = array.Difference
var DifferenceBy = array.DifferenceBy
var DifferenceWith = array.DifferenceWith
var Drop = array.Drop
var DropWhile = array.DropWhile
var DropRight = array.DropRight
var DropRightWhile = array.DropRightWhile
var Fill = array.Fill
var FindIndex = array.FindIndex
var FindLastIndex = array.FindLastIndex
var Head = array.Head // Head = First 不需要First的方法
var Tail = array.Tail
// Flatten FlattenDeep FlattenDepth FromPairs 都与golang强类型冲突, 先不实现
var IndexOf = array.IndexOf
// Initial 这个方法命名又不直观, 功能还和DropRight一样甚至弱, 所以不要这个方法
var Intersection = array.Intersection
var IntersectionBy = array.IntersectionBy
var IntersectionWith = array.IntersectionWith
var Join = array.Join
var Nth = array.Nth
var Pull = array.Pull
var PullAt = array.PullAt
var PullAll = array.PullAll
var PullAllBy = array.PullAllBy
var PullAllWith = array.PullAllWith
var Remove = array.Remove
var LastIndexOf = array.LastIndexOf
var Reverse = array.Reverse
var Slice = array.Slice
// sortedIndex sortedIndexBy sortedIndexOf sortedLastIndex sortedLastIndexBy sortedLastIndexOf sortedUniq sortedUniqBy 这些方法只是提升性能用, 使用频率不高, 先暂时不实现
var Take = array.Take
var TakeWhile = array.TakeWhile
var TakeRight = array.TakeRight
var TakeRightWhile = array.TakeRightWhile
var Union = array.Union
var UnionBy = array.UnionBy
var UnionWith = array.UnionWith
var Uniq = array.Uniq
var UniqBy = array.UniqBy
var UniqWith = array.UniqWith
// unzip unzipWith zip zipObject zipWith zipObjectDeep 都与golang强类型冲突, 先不实现
var Without = array.Without
var Xor = array.Xor
var XorBy = array.XorBy
var XorWith = array.XorWith


